Блог им. Buybuy |Алготрейдер на пути к постижению дзена

Доброе утро, коллеги!

Оставлю это здесь для памяти.
Этапы, которые по хорошему должен пройти алготрейдер на пути к дзену.

1. Построение оптимальной маркетной ТС

Маркетная ТС — это торговая система, которая предполагает, что финансовый результат сделки — это разница цен входа и выхода. Самый простой вариант. Интрига в том, что оптимальная маркетная ТС должна меняться/подстраиваться с обработкой каждого следующего бара — а это очень и очень непросто.

В конце этапа 1 мы понимаем, что на малых таймфреймах оптимальная ТС работает в минус (комиссия и проскальзывание убивает доход от сделки), а на больших — дает жалкие 30% годовых при DD 10% от депо.

2. Построение оптимальной лимитной ТС

Лимитная ТС — это торговая система, работающая путем выставления лимитных ордеров (потенциально убираем комиссию и проскальзывание). Соответственно, в ход идет обработка всего массива OHLC. Вычисления становятся значительно сложнее. Так же, как в п. 1, речь идет о нестационарной системе — она подстраивается на каждом баре.

( Читать дальше )

Блог им. Buybuy |Вопрос к алготрейдерам на MICEX

Доброй ночи, коллеги!

Я не торгую на росс. рынке с 2012. Причина проста — высокие комиссии. Ну и стандартная комиссия, применявшаяся к лимитным ордерам — это трэш, IMHO.

С июня 2022 MICEX обнулила комиссию по лимитникам, так что я начал медленно думать о возвращении на росс. рынок.
Пару недель назад у меня образовался безумный клиент, заинтересованный в торговле российскими активами. Ему срочно понадобился большой белый доход (чиновник, епть), так что он предложил более, чем шоколадные условия. И я начал считать.

И получил парадоксальные результаты.
1. Оказывается, после 24.02.22 рынок по объемам сдулся. Приличные объемы есть на Si, поменьше на Ri, маленькие, но проходные — на фьючерсах на ликвидные бумаги (SBER, GAZP). Есть еще фьючерсы с оборотом, как у бумажных — брент, голда, евро и рубльюань. Но первые 3 торговать конкретно в Москве — это бред (IMHO), есть масса более приятных площадок с хорошей ликвидностью. По рубльюаню история для меня коротковата. Оставляем для анализа Si, Ri, SBER, GAZP (фьючерсы).

( Читать дальше )

Блог им. Buybuy |Рынок - это просто! Часть 3

Доброй ночи, коллеги!

Признаюсь, в предыдущем посте я был весьма косноязычен, и только намекал на результаты, но не озвучивал их.

Попробую быть конкретнее — и стать ближе к народу.

Итак:

Мы хотим наилучшим образом прогнозировать будущее приращение цены актива.
(для маркетной задачи это равносильно быстрейшему росту эквити)

Пусть цена актива в момент t — это x(t), приращение цены — d(t)=x(t)-x(t-1), индикатор — id(t) (зависит от d(t-1), d(t-2), ...)

Попробуем найти простейший нестационарный линейный индикатор, зависящий от 2-х последних приращений цены.
(как и раньше, это означает, что торговая система покупает, когда id(t)>=0, и продает, когда id(t)<0)

В таком раскладе id(t)=A*d(t-1)+B*d(t-2)

Встанем на наивную точку зрения и потребуем, чтобы индикатор работал идеально на 2-х предыдущих барах.
Это означает, что:

d(t-1)=A*d(t-2)+B*d(t-3)
d(t-2)=A*d(t-3)+B*d(t-4)

Получилась СЛАУ из 2-х уравнений от 2-х неизвестных. Она практически всегда решается, за исключением случая, когда детерминант системы равен 0. Но у нас торговая система зависит не от точного значения прогноза приращения цены, а только от его знака, поэтому для нас решение существует всегда:

( Читать дальше )

Блог им. Buybuy |Рынок - это просто?

Доброй ночи, коллеги!

Давеча мой товарищ написал подробный пост про то, что на рынке все устроено просто.
Ну, типа, если простое решение не работает, то и сложное работать не будет.

Мой личный опыт показывает, что все обстоит в точности наоборот.

Попробую привести пример.

Как вам известно из моих постов, я потратил определенное время на исследование линейных индикаторов.

Это примерно следующее.
У нас есть курс актива: X(n), X(n-1),… n — это время
У нас есть приращение цены актива: d(n) = X(n)-X(n-1)
(напоминаю, мы используем только малые таймфреймы — от 1m и ниже)
У нас есть линейный индикатор: id(n)=a(1)*d(n)+a(2)*d(n-1)+...
У нас есть торговая система, которая покупает, когда id>0 и продает, когда id<0

Далее:
1. Довольно просто (но требует больших вычислительных мощностей) найти оптимальный стационарный линейный индикатор. Ну это такая штука, когда a(i) не зависят от времени, а эквити растет максимально быстро. Эта задача давно решена, могу поделиться результатом.

( Читать дальше )

Блог им. Buybuy |О тернистом пути применения методов ТВиМС в трейдинге

Доброй ночи, коллеги!

Сам я не поклонник применения методов ТВиМС в трейдинге (только когда по-другому никак), но свое частное мнение никому не навязываю.
Однако на этом пути пытливого исследователя могут ждать серьезные вычислительные проблемы, которые надо уметь решать.

1. Для максимизации эквити (или ее приращения на баре) очень важно наблюдать за произведениями приращений цен (условно d(i)*d(i-1)). Не хочу никого убеждать, прошу просто поверить на слово.
2. Известно (я приводил массу примеров), что соседние приращения цен не только не являются независимыми, но весьма сильно коррелированы.
3. Допустим, что приращения цен распределены нормально (сам я в это не верю, но признаю, что это общепринятая точка зрения).

ВОПРОС:
Как устроена плотность вероятности распределения случайной величины d(i)*d(i-1), если d(i) и d(i-1) — это зависимые нормально распределенные случайные величины с коэффициентом корреляции r? (разумеется, матожидания и дисперсии также известны)

С уважением

P.S. Эта задача не требует хорошего знания математики — достаточно знать профильные термины и уметь пользоваться поиском Google (хотя решения, полученные руками, всячески приветствуются). Однако, итоговая формула доставляет )))

Блог им. Buybuy |Интересная трейдерская задача по теории вероятностей

Доброй ночи, коллеги!

С удовольствием презентую уважаемому community интересную задачу из области теории вероятностей.
Решение задачи (когда оно получено) имеет непосредственное отношение к трейдингу.

Итак:
Имеем 3 (возможно, зависимые) случайные величины X1, X2 и X3.
Про них известны МО (матожидания) M1, M2 и M3, Д (дисперсии) D1, D2 и D3 и ковариации C12, C13 и C23.
Теперь составляем линейную комбинацию A1*X1+A2*X2+A3*X3 с неизвестными (пока) коэффициентами A1, A2 и A3.
Требуется найти коэффициенты A1, A2 и A3, при которых соотношение МО/sqrt(Д) для линейной комбинации будет максимальным.
(sqrt — это по-русски просто квадратный корень)

Жду ваших ответов и мнений, коллеги.

С уважением

P.S. 3 величины (а не N) выбраны для упрощения. Для 2-х случайных величин задача тривиальна.
P.P.S. Задача не слишком проста, и, по хорошему, следовало бы объявить платный конкурс. Но:
1. Я не знаю лично ни одного человека, которого забанили бы в Google (хотя поиск в Google не так прост на самом деле...)
2. (почти) Всем доступны пакеты символьной математики (Mathematica, Matllab, Maple), которые позволяют решать сложные задачи, не задумываясь об их устройстве и не владея математикой (но хорошо владея профильным софтом).


Блог им. Buybuy |(повторно) Про применимость ТВиМС к зарабатыванию прибыли на рынках

Доброй ночи, коллеги!

(на берегу — ТВиМС — это теория вероятностей и математическая статистика)

В связи с 2-мя обстоятельствами
1. Повышенная активности обсуждения вопросов ТВиМС со стороны Аллирог/Аллихвост/Аллихто
2. Неприятие данного (вполне научного) подхода со стороны большинства резидентов СЛ

Хочу возобновить старую дискуссию.

Итак
1. У нас есть формула для эквити (2 варианта — при торговле маркетными и при торговле лимитными ордерами)
2. Обе эти формулы однозначно выписываются в зависимости от входного массива данных в формате OHLC (хоть на тиках, но там скорее bid/ask)
3. Задача оптимизации эквити (получение максимального результата, оптимизация МО/ДД) никак не зависит от вероятностных характеристик процесса, в т.ч. от распределения приращений цен и от АКФ.

ВОПРОС:

А зачем нам вообще нужен подход ТВиМС для зарабатывания денег на рынке?

С уважением

Блог им. Buybuy |Маленький и слабенький конкурс

Доброе утро, коллеги!

Так получилось, что (судя по последним топикам на этом форуме) математиков здесь развелось, как г«вна за баней...

Дабы положить конец этому беспределу, решил выложить простую, элементарную задачку.

Маленький и слабенький конкурс
Вопрос простой:
1. Расчитать площадь фигуры, выделенной желтым цветом
2. Расчитать отношение площади этой фигуры к площади прямоугольника

Тут последует 2 комментария:
1. Произвести расчет в зависимости от c — достаточно элементарно
2. Расчитать точное значение c — это прикольно )))

С уважением


Блог им. Buybuy |Конкурс на 50,000 руб. завершен досрочно!

Добрый день, коллеги!

Очень приятно, что на СЛ обитают люди, которые умеют включать мозги).

В Конкурс на 50,000 руб.! (smart-lab.ru) объявился победитель. Всего на 2-й день. Это Юрий Ч.
Он уже получил свой выигрыш. Конкурс закрыт.

Поскольку вся переписка велась в чате конкурса, нет смысла скрывать результ. Правда, я его немного причешу.

Итак, у нас есть ценовые массивы High(t), Low(t), Close(t) и абсолютно любая ТС

Введем вспомогательную функцию Pos(X) = if X>0 then 1 else 0 end (почти функция Хевисайда)
и 2 вспомогательных массива

Alpha(t) = Pos(Close(t-1)-Low(t))
Beta(t) = Pos(High(t)-Close(t-1))

Тогда отрицательный снос на каждом баре выглядит так:

1. Версия Юрий Ч. (причесано мной)

Drift(t) = -abs(Close(t)-Close(t-1)) * if Alpha(t)+Beta(t)=1 then 1 else 0 end

2. Моя версия

Drift(t) = (Close(t)-Close(t-1)) * (Alpha(t)-Beta(t))

Для получения интегрального сноса надо просто просуммировать Drift(t) за нужный временной период.

( Читать дальше )

Блог им. Buybuy |Конкурс на 50,000 руб.!

Доброй ночи, коллеги!

В одном из предыдущих топиков я обратил ваше внимание на интересный феномен:
1. При работе маркетными ордерами проскальзывание зависит только от биржи/жадности брокера (но не меньше спрэда)
2. При работе лимитными ордерами проскальзывание (ну, так все считают) равно 0

На самом деле, конечно, это не так.

Допустим, мы имеем массив баров в формате HLC. Мой любимый таймфрейм 1m, но можно использовать и более длинные — 1d, 1w etc.

Теперь мы хотим, чтобы наша система работала лимитными ордерами. Это означает:
1. По итогам бара (и предыдущих баров) считаем индикатор и формируем лимитный ордер на покупку/продажу по цене close
2. Если пытаемся открыться вверх по close(t), то открытие состоится, только если low(t+1) будет меньше close(t) хотя бы на 1 прайсстеп
3. Если пытаемся открыться вниз по close(t), то открытие состоится, только если high(t+1) будет больше close(t) хотя бы на 1 прайсстеп
На формат/принцип расчета индикатора мы не накладываем никаких условий

( Читать дальше )

....все тэги
UPDONW
Новый дизайн